import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import dbStore from "./modules/db.js";
import compressionImage from "./modules/compressionImage.js";
import communicateModule from "./modules/communicate.js";

Vue.use(Vuex)

const modulesFiles = require.context('./modules', true, /\.js$/)

const modules = modulesFiles.keys().reduce((modules, modulePath) => {
	const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
	const value = modulesFiles(modulePath)
	modules[moduleName] = value.default
	return modules
}, {})
const store = new Vuex.Store({
	getters,
	modules: {
		...modules,
		dbStore,
		compressionImage,
		communicateModule,
	},
})

export default store
